
let arr = [1,2,6,7,8];

// filter：创建一个新数组，新数组中的元素都是符合指定条件过滤后的元素。
// (1)filter会遍历数组中的每一项，找到符合条件的项返回，返回一个新数组，不会改变原始数组
let filterArr = arr.filter(item=>{return item == 6});

console.log('arr:',arr); // [ 1, 2, 6, 7, 8 ]
console.log('filterArr：',filterArr); // [6]

// (2)filter对空数组不会进行检测，
var newArr = [].filter(item=>{console.log('Kong')})
console.log(newArr); // []



// some()：用来检测数组中的元素是否满足指定条件。
// 若有一个元素符合条件，则返回true，且后面的元素不会再检测
// 不会对空数组进行检测,不会改变原数组
let hadVal2 = arr.some(item=>{
    console.log(item); // 1,2
    return item == 2
});
let hadVal10 = arr.some(item=>{return item == 10});

console.log('arr：',arr); // [ 1, 2 ]
console.log('hadVal2：',hadVal2); // true
console.log('hadVal10：',hadVal10); // false 



// every()：用来检测数组中每个元素（检测所有元素）是否都符合指定条件
// 若有一个不满足条件，则返回false，后面的元素都不会再执行。
// 不会对空数组进行检测，不会改变原始数组
let everyFlag = arr.every(item=>{
    console.log(item); // 1,2,6
    return item + 2 < 5
});
console.log('arr:',arr); //  [ 1, 2, 6, 7, 8 ] 
console.log('everyFlag:',everyFlag); // false

let everyEmptyFlag = [].every(item=>{console.log('Kong...');});
console.log('everyEmptyFlag:',everyEmptyFlag); // true
